/**
 * @param {number[][]} source
 * @param {number[][]} target
 * @return {number}
 */
 var minimumSwitchingTimes = function(source, target) {
  const m = source.length, n = source[0].length
  const map = new Map()
  for(let i = 0; i<m; i++){
    for(let j = 0; j<n; j++){
      map.set(source[i][j], map.has(source[i][j]) ? map.get(source[i][j]) +1 : 1)
    }
  }
  let cnt = 0
  for(let i = 0; i<m; i++){
    for(let j = 0; j<n; j++){
      if(map.has(target[i][j]) && map.get(target[i][j]) > 0){
        map.set(target[i][j], map.get(target[i][j]) - 1)
      }else{
        cnt++
      }
    }
  }
  return cnt
};